package cn.iocoder.yudao.module.biz.controller.admin.htHiddentroubleflow.vo;

import cn.iocoder.yudao.module.infra.dal.dataobject.oss.OssDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Data
public class HiddentroubleflowJoinVO {
    @ApiModelProperty(value = "隐患主键")
    private String htId;

    @ApiModelProperty(value = "隐患名称")
    private String htName;

    @ApiModelProperty(value = "检查日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date checkDate;

    @ApiModelProperty(value = "隐患地点")
    private String place;

    @ApiModelProperty(value = "隐患类别")
    private String category;

    @ApiModelProperty(value = "检查类型")
    private String checkType;

    @ApiModelProperty(value = "隐患等级")
    private String level;

    @ApiModelProperty(value = "隐患状态")
    private String state;

    @ApiModelProperty(value = "隐患来源")
    private String source;

    @ApiModelProperty(value = "隐患产生原因")
    private String causeReason;

    @ApiModelProperty(value = "隐患描述")
    private String description;

    @ApiModelProperty(value = "检查人Id")
    private Long checkPeoId;

    @ApiModelProperty(value = "检查人")
    private String checkPeo;

    @ApiModelProperty(value = "检查单位ID")
    private String checkDeptId;

    @ApiModelProperty(value = "检查单位")
    private String checkDept;

    @ApiModelProperty(value = "所属单位ID")
    private String beCheckDeptId;

    @ApiModelProperty(value = "所属单位")
    private String beCheckDept;

    @ApiModelProperty(value = "危险源")
    private String riskId;

    //------流程ID----
    @ApiModelProperty(value = "流程ID")
    private String id;

    //-------------隐患整改相关属性---------

    @ApiModelProperty(value = "整改期限")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date rectificationLimit;

    @ApiModelProperty(value = "整改类型")
    private String rectificationType;

    @ApiModelProperty(value = "整改责任部门ID")
    private String rectificationDeptId;

    @ApiModelProperty(value = "整改责任部门")
    private String rectificationDept;

    @ApiModelProperty(value = "整改责任人ID")
    private Long rectificationPeoId;

    @ApiModelProperty(value = "整改责任人")
    private String rectificationPeo;

    @ApiModelProperty(value = "整改措施")
    private String rectificationMeasure;

    @ApiModelProperty(value = "整改结果")
    private String rectificationResult;

    @ApiModelProperty(value = "整改完成日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date rectificationDate;

    //---------------验收相关属性----------
    @ApiModelProperty(value = "验收责任人ID")
    private Long cancelPeoId;

    @ApiModelProperty(value = "验收责任人")
    private String cancelPeo;

    @ApiModelProperty(value = "验收责任单ID")
    private Long cancelDeptId;

    @ApiModelProperty(value = "验收责任单位")
    private String cancelDept;

    @ApiModelProperty(value = "验收日期")
    private Date cancelDate;

    @ApiModelProperty(value = "验收销号意见")
    private String cancelInfo;

    //-----下达相关属性-----
    @ApiModelProperty(value = "下达方式")
    private String issueType;

    @ApiModelProperty(value = "下达日期")
    private String issueDate;

    @ApiModelProperty(value = "下达人ID")
    private String issuePeoId;

    @ApiModelProperty(value = "延期申请人ID")
    private Long deferApplyPeoId;

//    @ApiModelProperty(value = "延期申请部门ID")
//    private String deferApplyDeptId;
    /**
     * 延期整改日期
     */
    @ApiModelProperty(value = "延期整改日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date deferDate;

    @ApiModelProperty(value = "延期原因")
    private String deferApplyInfo;

//    @ApiModelProperty(value = "延期申请日期")
//    private Date deferApplyDate;
//
    @ApiModelProperty(value = "延期审批人")
    private Long deferApprovePeoId;
//
//    @ApiModelProperty(value = "延期审批人部门")
//    private String deferApproveDeptId;
//
//    @ApiModelProperty(value = "延期审批日期")
//    private Date deferApproveDate;

    @ApiModelProperty(value = "延期审批意见")
    private String deferApproveInfo;

    @ApiModelProperty(value = "附件")
    List<OssDO> ossFile=new ArrayList<OssDO>();
    @ApiModelProperty(value = "整改前图片")
    List<OssDO> ossImg=new ArrayList<OssDO>();

    @ApiModelProperty(value = "整改后图片")
    List<OssDO> RectificationOssImg=new ArrayList<OssDO>();
}
